<?php

/**
 * @copyright 2011
 * @version $Id$
 * @author oriotiori
 * @access public
 */
class Default_Model_TO_Useraccess{
	
    private $vars;  //arreglo de variables
    private $data;  //arreglo de arreglos

    public function __construct()
    {
        $this->vars = array();
        $this->data = array();
    }


/**
 * Preparamos el llamado a los métdos set y get
 * asi no creamos un los setter y getter para cada elemento
 */
    function __call($method, $arguments)
    {
        //if (preg_match_all('/get(.+)/', $method, $test))
        if (substr($method, 0, 3) == 'get')
        {
            //$property = $test[1][0];
            $property = substr($method, 3, strlen($method));
            if (isset($this->vars[$property]))
            {
                return $this->vars[$property];
            }
        }

        //if (preg_match_all('/set(.+)/', $method, $test))
        if (substr($method, 0, 3) == 'set')
        {
            //$property = $test[1][0];
            $property = substr($method, 3, strlen($method));
            if (is_array($arguments))
            {
                $this->vars[$property] = $arguments[0];
            }
            else
            {
                $this->vars[$property] = $arguments;
            }
        }
        return false;
    }

////////////////////////////////////
   /**
     * User::getAllVars()
     * Obtiene todas las variables insertadas mediante los gets (getId, detDescription, etc)
     * @return : regresa un arreglo con las variables
     */
    public function getAllVars()
    {
    	return $this->vars;
    }

     /**
     * User::getAllData()
     * Obtiene un arreglo de arreglos de variables, en caso de que se usara la funcion add()
     * @return : regresa un arreglo de arreglos con las variables usadas
     */
    public function getAllData()
    {
    	return $this->data;
    }
    /**
     * User::remove()
     * Remueve un conjunto de variables del arreglo de arreglos (en caso de que exista dicho arreglo)
     * @return : regresa un arreglo de las variables que se removier�n
     */
    public function remove()
    {
        return array_pop($this->data);

    }

    /**
     * User::add()
     * Agrega un conjunto de variables en el arreglo de arreglos
     * @return void
     */
    public function add()
    {
    	array_push($this->data, $this->vars);
    }

	
}